package lianxi;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class _10_ {

	public static void main(String[] args) {
		File file = new File("D:\\1\\2\\a.rar");
		copy(file);
	}

	public static void copy(File file) {
		// getAbsolutePath 返回抽象路径名的绝对路径名字符串
		String filePath = file.getAbsolutePath();

		// substring() 方法返回的子串包括 start 处的字符，但不包括 stop 处的字符。
		String newFilePath = "E" + filePath.substring(1);
		File newFile = new File(newFilePath);

		// getParentFile 获得上级目录
		File paraentFile = newFile.getParentFile();

		// exists 测试此抽象路径名表示的文件或目录是否存在
		if (!paraentFile.exists()) {
			// 创建目录 生成目录
			paraentFile.mkdirs();
		}
		try (FileInputStream fis = new FileInputStream(filePath);
				FileOutputStream fos = new FileOutputStream(newFilePath);
				BufferedInputStream bis = new BufferedInputStream(fis);
				BufferedOutputStream bos = new BufferedOutputStream(fos);) {
			byte[] bytes = new byte[102400];
			int tmp = 0;
			while ((tmp = bis.read(bytes)) != -1) {
				bos.write(bytes, 0, tmp);
			}
			bos.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
